/**
 * Created by 丸子 on 2018/7/20 0020.
 */
import store from '../store'
import * as sessionTypes from '../store/session/types'
import Vue from 'vue'
import {stringify} from 'qs'

// 路径参数
export function $url(path, query) {
  if (path.indexOf('http://') === 0) {
    return path
  } else {
    const queryString = Object.keys(query || {}).map((key) => {
      return key + '=' + query[key]
    }).join('&')
    return '/' + path + '.html' + (queryString ? ('?' + queryString) : '')
  }
}

// 路径带参数
export function $gotoUrl(path, query) {
  location.assign($url(path, query))
}

// 路径不带参数
export function $webUrl(path) {
  return window.WEB_URL + path
}

// 本地开发图片路径
export function $serverImg(path) {
  if (path == null) {
    return ''
  }
  if (process.env.NODE_ENV === 'production') {
    return window.IMG_HOST + path
  }
  return window.IMG_HOST + path
}

// 108英雄图片路径
export function $heroImg(country,type,skin) {
  return "https://three-kingdom.oss-cn-shenzhen.aliyuncs.com/" + country +'/'+type+'_'+skin+".jpg?x-oss-process=style/sanguo"
}
// 装备图片路径
export function $heroImgZb(type) {
  return "https://three-kingdom.oss-cn-shenzhen.aliyuncs.com/10/"+type+".jpg"
}
// 头像图片路径
export function $heroImgTx(country,type,skin) {
  return "https://three-kingdom.oss-cn-shenzhen.aliyuncs.com/" + country +'/1/'+type+'_'+skin+".jpg"
}

// catch
export function $alertAxiosError(error) {
  if (error.response && error.response.data && error.response.data.code === '403') {
    Vue.prototype.$message.error(error.response.data.msg)
    window.location.href = 'login.html'
    return
  }
  if (error.response) {
    Vue.prototype.$message.error(`${error.response.data && error.response.data.msg || '未知错误'}`)
    return;
  } else {
    Vue.prototype.$message.error(`请求数据失败: ${error.message || ''}`)
    return;
  }
  // return Promise.reject(error)
}

// 时间转换0000-00-00
export function $getTimeNew(dateStr, fmt = 'YYYY-mm-dd HH:MM:SS') {
  if (Object.prototype.toString.call(dateStr) === '[object string]') {
    dateStr = dateStr.replace(/-/g, '/')
  } else if (Object.prototype.toString.call(dateStr) === '[object Number]') {
    if (dateStr.toString().length < 13) {
      dateStr = dateStr * 1000
    }
  }
  const date = new Date(dateStr)
  let ret;
  let opt = {
    "Y+": date.getFullYear().toString(),        // 年
    "m+": (date.getMonth() + 1).toString(),     // 月
    "d+": date.getDate().toString(),            // 日
    "H+": date.getHours().toString(),           // 时
    "M+": date.getMinutes().toString(),         // 分
    "S+": date.getSeconds().toString()          // 秒
    // 有其他格式化字符需求可以继续添加，必须转化成字符串
  };
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt);
    if (ret) {
      fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
    }
  }
  return fmt;
}
// 转化为 千分位
export function $format(num){
  num=num.toString().split(".");  // 分隔小数点
  var arr=num[0].split("").reverse();  // 转换成字符数组并且倒序排列
  var res=[];
  for(var i=0,len=arr.length;i<len;i++){
    if(i%3===0&&i!==0){
      res.push(",");   // 添加分隔符
    }
    res.push(arr[i]);
  }
  res.reverse(); // 再次倒序成为正确的顺序
  if(num[1]){  // 如果有小数的话添加小数部分
    res=res.join("").concat("."+num[1]);
  }else{
    res=res.join("");
  }
  return res;
}